# Makefile

# 可执行文件的名称
TARGET = charts

# 源代码目录
SRC_DIR = src
OBJ_DIR = object
# 源文件列表
SOURCES = $(wildcard $(SRC_DIR)/*.cpp)

# 目标文件列表
OBJECTS = $(SOURCES:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o)

# 编译器
CXX = g++
# 编译选项
CXXFLAGS = -std=c++11 -Wall -g -I/usr/local/json-develop/include  -I/usr/local/mysql/include -I/usr/include/

# 链接选项
LDFLAGS = -lpthread -lrt -ljsoncpp -lmysqlcppconn -lwebsockets -lssl -lcrypto -lz 


# 规则：默认目标
all: $(TARGET)

# 规则：如何生成可执行文件
$(TARGET): $(OBJECTS)
	@mkdir -p bin
	$(CXX)  -o $@ $(OBJECTS) $(LDFLAGS)

# 规则：如何生成目标文件
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
	@mkdir -p $(OBJ_DIR)
	$(CXX) $(CXXFLAGS) -c -o $@ $<

# 规则：清理编译生成的文件
clean:
	rm -f $(OBJECTS) $(TARGET)

# 打印 OBJECTS 变量的目标
print-objects:
	@echo "OBJECTS = $(OBJECTS)"
	@echo "SOURCES = $(SOURCES)"
	@echo "all = $(CXX) $(LDFLAGS) -o $@ $(OBJECTS)"
